package cn.edu.tju.elm.service;

import cn.edu.tju.core.model.User;
import cn.edu.tju.elm.dto.OrderCreateDto;
import cn.edu.tju.elm.model.Order;
import cn.edu.tju.elm.model.OrderDetailet;
import java.util.List;

public interface OrderService {
    
    Order createOrder(OrderCreateDto orderDto, User customer);
    
    Order getOrderById(Long orderId, User currentUser);

    /**
     * 获取订单详情列表
     * @param orderId 订单ID
     * @param currentUser 当前用户
     * @return 订单详情列表
     */
    List<OrderDetailet> getOrderDetailets(Long orderId, User currentUser);
    
    List<Order> listOrdersForUser(User currentUser);

    /**
     * 根据商家ID查询订单
     */
    List<Order> listOrdersForBusiness(Long businessId, User currentUser);

    /**
     * 更新订单状态
     * @param orderId 订单ID
     * @param status 新状态 (0:已取消, 1:已下单(未支付), 2:已支付, 3:配送中, 4:已送达)
     * @param currentUser 当前用户
     * @return 更新后的订单
     */
    Order updateOrderStatus(Long orderId, Integer status, User currentUser);
}
